Optical indicia such as barcode symbols can be defined as optical machine-readable representations of data. Over the last several decades, various optical code symbologies have been created and incorporated into countless industrial, commercial, and residential applications. For example, the first commercially successful barcodes, Universal Product Codes (UPCs), were developed along with automated supermarket checkout systems. These systems included a laser-scanner barcode reader to read and decode UPC barcode symbols affixed to products to get the price for the each product. UPC symbols are considered to be a one-dimensional barcode in that data is encoded linearly across a series of parallel bars and spaces with varying widths. A moveable laser beam is operated to form a line across the width of a barcode symbol being read. The intensity of the light reflected back from the barcode symbol is captured via one or more photodiodes as a waveform having a series of peaks and valleys. After a full waveform is obtained by the barcode reader, the processor decodes the symbol to extract the data contained therein.
After widespread proliferation of UPC symbols, other types of linear barcodes were developed with many still in use today. Due to their simplicity and ease of reading, linear barcodes are particularly well suited for applications involving automated sorting and material handling, inventory management, quality control, shipping and receiving functions, especially at high volumes and/or speed. Linear barcodes, however, only hold a limited amount of data or information.
To overcome the data limitations of one-dimensional barcodes, two-dimensional (2D) barcode symbols and image-based readers to read and decode them, were subsequently developed. Examples of two-dimensional barcode symbols include matrix codes (QR, Data Matrix, etc.) and stacked barcodes (e.g., PDF-417). Both one-dimensional and two-dimensional barcodes, along with other machine-readable indicia such as alpha-numeric characters, are generally referred to as optical codes.
Newer image based optical code readers use a complementary metal oxide semiconductor (CMOS)-based camera sensor with an array of pixels having a field of view. In use, images, or frames, from the field of view are obtained by the camera at a preset rate. The readers have an illuminator, typically one or more LEDs, and an electronic shutter mechanism that can be adjusted to obtain sufficiently clear and bright images. Images are processed with various algorithms to identify and decode optical indicia including 1D and 2D barcodes within the reader's field of view.
Images acquired with optical code reader are referred to generally as a frame. All video and still-frame cameras have a frame rate, or imaging speed, given in units of frames per second (fps). Many barcode readers operate at a speed, or frame rate, of sixty (60) frames per second. An image sensor in such a reader obtains a full image frame every 1/60 of a second, or roughly every 16.67 milliseconds. After a full frame has been exposed, the charge of each pixel is shifted out to a memory unit and processed collectively into a single image.
Recent advancements in barcode technology include the development of digital barcodes, i.e., one- and two-dimensional barcode symbols generated and presented electronically on high-resolution display screens of smart phones, computers, and other portable electronic devices. Digital barcodes have found acceptance in applications such as electronic coupons, paperless airline tickets, and other applications and can be delivered to consumers via email, websites, and television advertising. Despite the widespread and growing use of digital barcodes, many image based barcode scanners cannot reliably read digital barcodes due to the highly reflective display screens on most electronic devices. Barcodes printed on paper or other physical media are best read with a single illumination pulse and a relatively short exposure period while barcodes presented on a backlit display are best read with no illumination and a relatively longer exposure period.
With the wide variety of scanning applications, including instances in which either printed or digital barcodes may be presented to a reader, one frame and a single illumination flash, may not reliably produce an optimal, i.e., decodable, image. To cover both possibilities, existing barcode readers inherently require two or more frames, one obtained under optimal conditions for digital barcodes and one obtained under optimal conditions for printed barcodes. This results in the need to off-load and evaluate multiple frames. This approach is inherently slow due to the increased time needed to obtain multiple images, even if only two frames are needed to produce a readable barcode image. If both possibilities could be covered in the same frame, the speed to obtain a readable image of either type of barcode would be faster.
Therefore, a need exists for an image based optical code reader able to read barcode symbols presented under more than one set of exposure and illumination conditions within a single frame. If multiple conditions can be applied during a single frame, the number of frames needed to obtain a decodable barcode image may be reduced to a single frame if either a printed or a digital barcode is presented to the reader.